﻿<?PHP

require_once 'dao/MembroDaoImpl.class.php';
require_once 'entity/Membro.class.php';

class MembroServiceImpl{

		private $membroDaoImpl = null;
		private $query = null;

		public function __construct(){
			$this->membroDaoImpl = new MembroDaoImpl();	
		}
		
		public function insert($membro){
			$this->membroDaoImpl->insert($membro);
		}
		
		public function remove($membro){
			$this->membroDaoImpl->remove($membro);
		}
		
		public function removeAll(){
			$this->membroDaoImpl->removeAll();
		}
		
		public function getAll(){
			return $this->membroDaoImpl->getAll();
		}
		
		/**
		* Verifica se é permitido remover o item aplicando filtro por Id.
		* @param $id: corresponde ao id do objeto a ser removido.
		* return verdadeiro ou falso
		**/
		public function isValidRemoveById($id){
		
			$isValid = false;
			
			if($id != null){
				// verifica se o objeto exite no banco
				$this->query = $this->membroDaoImpl->getById($id);
				
				if($this->query->num_rows > 0){
					$isValid = true;
				}
			}
			
			return $isValid;
		}
		
		/**
		* Verifica se é permitido remover o item aplicando filtro por Id.
		* @param $ot: corresponde ao objeto de transporte
		* return ObjectTransport
		**/
		public function isValidRemoveObjectTransport($ot){
		
			$ot->setValidOperation(ObjectTransport::IS_NOT_VALID);
			$id = $ot->getObjectValue()->getId();
			
			if($id != null){
				// verifica se o objeto exite no banco
				$this->query = $this->membroDaoImpl->getById($id);
				
				if($this->query->num_rows > 0){
					$ot->setValidOperation(ObjectTransport::IS_VALID);
				}else{
					$ot->setValidOperation(ObjectTransport::IS_NOT_VALID);
					$ot->setTitleStr(ObjectTransport::ERROR);
					$ot->setMessageStr("Não é possível remover o item selecionado.");
				}
			}else{
				$ot->setValidOperation(ObjectTransport::IS_NOT_VALID);
				$ot->setTitleStr(ObjectTransport::ERROR);
				$ot->setMessageStr("Erro no preenchimento: selecione um item.");
			}
			
			return $ot;
		}
		
}
?>